package July;

import javax.xml.transform.Result;
import java.util.Date;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test4Pattern {
    public static void main(String[] args) {
//        需求:把下面文本中的座机电话，邮箱，手机号，热线都爬取出来。手机号:18512516758，18512508907或者联系邮箱: boniu@itcast.cn，座机电话: 01036517895，010-98951256邮箱: bozai@itcast.cn,热线电话: 408-618-9090 , 408-618-40ee，408618408e，400618909e热线电话: 408-618-9090 , 408-618-40ee，408618408e，400618909e邮箱的正则表达式:\w+@[ \ w&&[^_]]{2,6}( l.[a-zA-Z]{2,3}){1,2}座机电话的正则表达式: e\d{2,3}-?[1-9]\d{4,9}

        String s = "手机号:18512516758，18512508907或者联系邮箱: boniu@itcast.cn，座机电话: 11036517895，010-98951256邮箱: bozai@itcast.cn,热线电话: 408-618-9090 , 408-618-4000，4086184080，4006189090热线电话: 408-618-9090 , 408-618-4000，4086184080，4006189090邮箱的正则表达式";

        //手机号的正则表达式：1[3-9]\d{9}
        //邮箱的正则表达式:\w+@[\w&&[^_]]{2,6}(\.[a-zA-Z]{2,3}){1,2}
        //座机电话的正则表达式：0\d{2,3}-?[1-9]\d{4,9}
        //热线电话的正则表达式:400-?[1-9]\\d{2}-?[1-9]\\d{3}


        String reges = "(1[3-9]\\d{9})|(\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2})|(0\\d{2,3}-?[1-9]\\d{4,9})|(400-?[1-9]\\d{2}-?[1-9]\\d{3})";

//        (0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])

        String ID="[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01]) \\d{3}[\\d|Xx]";
        //1.获取正则表达式的对象
        Pattern p = Pattern.compile(reges);
        String ist="430581200102314271";

        //2.获取文本匹配器的对象
        //利用m去读取s，会按照p的规则找里面符合正则表示的小串
        Matcher m = p.matcher(s);

        //3.利用循环获取每一个数据
//        while (m.find()) {
//            String str = m.group();
//            System.out.println(str);
//        }

        String a="[1-9]\\d{5}(?:18|19|20)\\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\\d|30|31)\\d{3}[\\dXx]";
        System.out.println(ist.matches(a));

        System.out.println("------------------------------");
        String b="(.+).+\\1";
        System.out.println("a1231a".matches(b));
        System.out.println("------------------------------");
        String st1="sssssbbbbssss";
        String result=st1.replaceAll("(.)\\1+","$1");
        System.out.println(result);


        Date date = new Date();
        System.out.println(date);

        Date date2 = new Date(0L);
        System.out.println(date2);

    }


}
